{{tag>SGBD bureautique}}

----

====== Connexion à une base de donnée Mysql sous LibreOffice ======


Cette page présente la mise en place d'une connexion entre une base MySQL et LibreOffice.

===== Introduction =====

Description des logiciels utilisés :

  * [[:Mysql]] est un serveur de bases de données relationnelles SQL.
  * [[wpfr>ODBC]] : format de [[wpfr>Microsoft]] permettant la communication entre des clients et la plupart des [[wpfr>SGBD]].
  * [[:LibreOffice]], le logiciel libre de bureautique de référence.

Vous pouvez vous connectez avec Base de trois manières:
  * [[#Directement]]
  * [[#Avec l'extension libreoffice-mysql-connector|Avec une extension pour libreoffice]]
  * [[#Avec le pilote JDBC]]
  * [[#Avec le pilote ODBC]]

=====Directement=====
Depuis les versions 6 de LibreOffice, un connecteur est intégré à l'application. Il est donc inutile d'installer une extension ou d'activer les pools de connexions dans les préférences.

A la création du fichier Base, il faut successivement :
  - Choisir la 3e option "Connecter un base de données existante" et sélectionner "MySQL"
  - A l'écran suivant, sélectionner "Connecter directement"
  - Compléter l'écran suivant. Si la base MySQL est installée sur le même poste, le serveur est "localhost", sinon l'adresse IP du poste serveur. Le port est 3306
  - Compléter les 2 écrans suivants non spécifiques

Ce type de connexion connaît parfois des bugs pour accéder à certaines tables.

Il n'est pas simple non plus de remplacer une connexion d'un autre type pour utiliser celle-là : nécessité de créer une nouvelle base et réintégrer les différents éléments (formulaires, requêtes, rapports, code).

=====Avec l'extension libreoffice-mysql-connector=====
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>libreoffice-mysql-connector]]** qui est une extension de connexion MariaDB/MySQL pour LibreOffice.
Si vous avez des problèmes avec ce pilote sous Ubuntu 16.04 voir [[https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1577316|ici]]. Comme indiqué en ce lieu le JDBC fonctionne.

Alternative : ajouter une extension que vous pouvez télécharger à [[https://www.arielch.org/aoo/aoo-my-sdbc/|MySQL Driver]].

===== Avec un pilote JDBC =====
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>libha-jdbc-java]]**.
Dans Libreoffice, avant de pouvoir utiliser un pilote JDBC, vous devez ajouter son chemin de classe. Choisissez //Outils -> Options -> LibreOffice -> Avancé//, et cliquez sur le bouton Chemin de classe. Naviguez jusqu'à l'archive qui se trouve dans ///usr/share/java/mysql-connector-java-5.1.28.jar//. Après avoir ajouté les informations de chemin, redémarrez LibreOffice.

<note important>LibreOffice Base s'installe avec le support du pilote JDBC comme une dépendance, paquet [[https://packages.ubuntu.com/xenial/libreoffice-base-drivers|libreoffice-base-drivers]]

Le paquet [[https://packages.ubuntu.com/xenial/libha-jdbc-java|libha-jdbc-java]] ne fournit aucun pilote JDBC mais une abstraction de haute disponibilité à toute connectivité JDBC.
</note>

Une procédure détaillée pour lire une base access avec le pilote JDBC peut se trouver [[lire_une_base_access|ici]].

===== Avec un pilote ODBC =====

<note warning>À l'heure actuelle cette solution ne fonctionne pas, si quelqu'un trouve les bons paramètres, son aide est la bienvenue.</note>

Commencez par [[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>libmyodbc]]** et **[[apt>unixodbc-bin]]**.

Maintenant lancez **Unixodbc** avec les [[:Sudo|droits d'adminstration]], pour créer le pilote. Entrez la comamnde suivante dans un [[:terminal]] : <code>gksudo ODBCManageDataSourcesQ4</code>
  * Allez dans //Advanced//,
  * Pouis dans l'onglet //drivers//, bouton //add//: FIXME pour toute cette partie
<file>
name: Mysql
description: Mysql driver
driver: 
ou en 64 bits:  /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
setup: /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
setup64
</file>
Laissez le reste par défaut et fermez **ODBCManageDataSourcesQ4**.

On va maintenant lancer **ODBCManageDataSourcesQ4** en tant qu'utilisateur : <code>ODBCManageDataSourcesQ4</code> 
 
Onglet //user dns//, bouton //add//, sélectionnez le pilote nommé //Mysql//, puis cliquez sur le bouton //OK//
<file>
name: nom_de_la_base
server: localhost
database: nom_de_la_base
</file>

Laissez le reste par défaut et fermez **ODBCManageDataSourcesQ4**.


===== Connection à la base de donnée=====

Dans LibreOffice :
  * Onglet //Fichier -> Nouveau -> Base de données//,
  * Cochez la case //Se connecter à une base de données existante//, puis sélectionnez //Mysql// dans la liste au-dessous,
  * Cliquez sur le bouton //Suivant//,
  * Si vous avez installé:
    * L'extension, choisissez //Connecter directement//, 
    * Si vous avez activé le pilote ODBC choisissez //Connection utilisant ODBC//,
    * Si vous avez activé le pilote JDBC choisissez //Connection utilisant JDBC//,
  * Cliquez sur le bouton //Suivant//
  * Dans le cas d'une connexion directe et JDBC remplissez les champs comme suit:
    *  //Nom de la base de données//, entrez //le nom de votre base de donnée//;
    * "Serveur", entrez //localhost//, si la base se trouve sur votre pc, ou l'adresse IP d'un autre serveur, 
  * Cliquez sur le bouton //Suivant//,
  * Tapez le nom d'utilisateur que vous utilisez pour accéder à votre base, et suivant la configuration de votre serveur MySQL, cochez ou non //Password required//,
  * Cliquez sur le bouton //Terminer//.

Ça y est, vous avez maintenant accès à votre base MySQL sous LibreOffice. 

===== Notes =====

  * Pour accéder rapidement aux bases de données, tapez sur la touche F4 sous LibreOffice.
  * Pour supprimer une base de données sous LibreOffice : onglet //outils/options -> LibreOffice Base -> base de données//

===== Voir aussi =====
  * Page principale de [[:LibreOffice]]

----

//Contributeurs : [[:utilisateurs:Yeffries]], [[:utilisateurs:l_africain|L'Africain]], [[:utilisateurs:Poupoul2]]//